Synchronization code methods

ABSTRACT

A system, method and computer software product are provided. One embodiment of the present invention provides a method for generating and employing numerical sequences that may be used for synchronization codes. In one embodiment of the present invention, the derivation of numerical sequences, or codes is based on an encoding algorithm. These codes enable synchronization between communicating devices, and may also be used for channelization. This Abstract is provided for the sole purpose of complying with the Abstract requirement rules that allow a reader to quickly ascertain the subject matter of the disclosure contained herein. This Abstract is submitted with the explicit understanding that it will not be used to interpret or to limit the scope or the meaning of the claims.

This application claims priority under 35 U.S.C. §120 as a divisional ofU.S. patent application Ser. No. 10/897,281, filed Jul. 21, 2004,entitled “Synchronization Code Methods.”

FIELD OF THE INVENTION

The present invention generally relates to communications. Moreparticularly, the invention concerns systems and methods to derive andemploy unique synchronization codes.

BACKGROUND OF THE INVENTION

The Information Age is upon us. Access to vast quantities of informationthrough a variety of different communication systems is changing the waypeople work, entertain themselves, and communicate with each other.

For example, because of the 1996 Telecommunications Reform Act,traditional cable television program providers have now evolved intofull-service providers of advanced video, voice and data services forhomes and businesses. A number of competing cable companies now offercable systems that deliver all of the just-described services via asingle broadband network.

These services have increased the need for bandwidth, which is theamount of data transmitted or received per unit time. More bandwidth hasbecome increasingly important, as the size of data transmissions hascontinually grown. Applications such as in-home movies-on-demand andvideo teleconferencing demand high data transmission rates. Anotherexample is interactive video in homes and offices.

Other industries are also placing bandwidth demands on Internet serviceproviders, and other data providers. For example, hospitals transmitimages of X-rays and CAT scans to remotely located physicians. Suchtransmissions require significant bandwidth to transmit the large datafiles in a reasonable amount of time. These large data files, as well asthe large data files that provide real-time home video are simply toolarge to be feasibly transmitted without an increase in systembandwidth. The need for more bandwidth is evidenced by user complaintsof slow Internet access and dropped data links that are symptomatic ofnetwork overload.

In addition, the wireless device industry has recently seenunprecedented growth. With the growth of this industry, communicationbetween different wireless devices, and the bandwidth of these devices,has become increasingly important. Conventional radio frequency (RF)technology has been the predominant technology for wireless devicecommunication for decades.

Conventional RF technology employs continuous carrier sine waves thatare transmitted with data embedded in the modulation of the sine waves'amplitude or frequency. For example, a conventional cellular phone mustoperate at a particular frequency band of a particular width in thetotal frequency spectrum. Specifically, in the United States, theFederal Communications Commission (FCC) has allocated cellular phonecommunications in the 800 to 900 MHz band. Generally, cellular phoneoperators divide the allocated band into 25 MHz portions, with selectedportions transmitting cellular phone signals, and other portionsreceiving cellular phone signals.

Another type of inter-device communication technology is ultra-wideband(UWB). UWB wireless technology employs discrete pulses ofelectromagnetic energy and is fundamentally different from conventionalcarrier wave RF technology. UWB employs a “carrier free” architecture,which does not require the use of high frequency carrier generationhardware, carrier modulation hardware, frequency and phasediscrimination hardware or other devices employed in conventionalfrequency domain communication systems.

One feature of UWB is that a UWB signal, or pulse, may occupy a verylarge amount of RF spectrum, for example, generally in the order ofgigahertz of frequency band. Large amounts of data can be transmittedusing UWB technology.

Developers of UWB communication devices have proposed differentarchitectures, or communication methods for ultra-wideband devices. Inone approach, the available RF spectrum is partitioned into discretefrequency bands. A UWB device may then transmit signals within one ormore of these discrete sub-bands. Alternatively, a UWB communicationdevice may occupy all, or substantially all, of the RF spectrumallocated for UWB communications. Regardless of what type of UWBarchitecture is employed, consumers will expect these devices to have ahigh bandwidth capability.

Therefore, there exists a need for methods to increase the bandwidth ofwire and wireless networks.

SUMMARY OF THE INVENTION

The present invention provides a system, method and computer programproduct for deriving and employing unique synchronization codes. In oneembodiment of the present invention, the derivation of numericalsequences, or codes, is based on an encoding algorithm. In thisembodiment, a convolutional coding rate is selected, and valid, as wellas invalid, codes are generated. The invalid codes are then subjected tofurther analysis, and then employed as synchronization codes.

Synchronization generally comprises transmitting a bit or bits that areused by a receiver to synchronize it with a transmitter. Thesynchronization codes of the present invention may be used forsynchronization between communicating devices. Since the codes areinvalid for data, a receiving device will not confuse them for data,thereby increasing the robustness, or Quality of Service of thecommunication. In addition, the codes may be used for channelization ofcommunications between devices in an environment where there arenumerous devices communicating.

These and other features and advantages of the present invention will beappreciated from review of the following detailed description of theinvention, along with the accompanying figures in which like referencenumerals refer to like parts throughout.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of different communication methods;

FIG. 2 is an illustration of two ultra-wideband pulses;

FIGS. 3A-D illustrate different convolutional encoders;

FIG. 4 illustrates a group of communication frames;

FIG. 5 illustrates one method of deriving numerical codes according toone embodiment of the present invention;

FIG. 6 illustrates a second method of deriving numerical codes accordingto a second embodiment of the present invention;

FIG. 7 illustrates a third method of deriving numerical codes accordingto a third embodiment of the present invention; and

FIG. 8 illustrates two pico-nets within the same geographical area.

It will be recognized that some or all of the Figures are schematicrepresentations for purposes of illustration and do not necessarilydepict the actual relative sizes or locations of the elements shown. TheFigures are provided for the purpose of illustrating one or moreembodiments of the invention with the explicit understanding that theywill not be used to limit the scope or the meaning of the claims.

DETAILED DESCRIPTION OF THE INVENTION

In the following paragraphs, the present invention will be described indetail by way of example with reference to the attached drawings. Whilethis invention is capable of embodiment in many different forms, thereis shown in the drawings and will herein be described in detail specificembodiments, with the understanding that the present disclosure is to beconsidered as an example of the principles of the invention and notintended to limit the invention to the specific embodiments shown anddescribed. That is, throughout this description, the embodiments andexamples shown should be considered as exemplars, rather than aslimitations on the present invention. As used herein, the “presentinvention” refers to any one of the embodiments of the inventiondescribed herein, and any equivalents. Furthermore, reference to variousfeature(s) of the “present invention” throughout this document does notmean that all claimed embodiments or methods must include the referencedfeature(s).

The present invention provides a system and method for communication,wirelessly or through a wire medium, using either conventional carrierwave technology, or ultra-wideband technology. The present inventionemploys digital communication methods that may be applied to virtuallyany type of communication system and/or device.

One embodiment of the present invention provides a system, method andcomputer software product for deriving and employing uniquesynchronization codes. Briefly, the numerical sequences comprising thesynchronization codes are derived from various encoding algorithms andmay be used as synchronization codes to enable communication betweendifferent communication devices. They are additionally useful for“whitening” spectral lines caused by conventional “fixed”synchronization and channelization codes.

Synchronization (also known as frame synchronization, frame alignment,or framing) generally comprises transmitting a specific sequence of bitsthat is used by a receiver to synchronize it with the transmitter. Forexample, a “frame synchronization pattern,” generally comprising arecurring pattern of bits, is transmitted that enables the receiver toalign its clock, or time reference with the transmitter's timereference. Usually the bit pattern is repeated, which helps ensure thatthe receiver will have an opportunity to “lock” in on at least one ofthe transmitted bit patterns. These bit patterns are not data. That is,data generally comprises voice, audio, video, Internet content and/orother types of information.

These synchronization sequences need to be recognizable by the receiveras a synchronization sequence and not be confused with data. Forexample, in an ultra-wideband (UWB) communication system employing adata modulation technique called pulse position modulation (PPM), eachdevice generates and transmits a pulse of energy in a specific time bin.The location of the time bin (within a symbol slot) determines a bitvalue, which represents data. Without precise synchronization betweenthe transmitter and the receiver, the receiver may be unable to reliablydetermine which time bin the pulse is located in, resulting in a highbit-error-rate, and low Quality of Service (QOS).

Additionally, some communication channels may be of poor quality andunable to support the QOS requirements of some data types (video hashigh QOS requirements, voice has low QOS requirements). In thatenvironment, a number of bit error detection and correction schemes(i.e., algorithms) may be used to improve the QOS. Alternatively,different communication channels may be created by using codes toprovide “channelization,” which is a method that allows a specificgroup(s) of users to communicate without interfering with non-intendedgroup(s) of users

There are many different types of channelization and errordetection/correction algorithms. Broadly, all of these methods areachieved by “encoding” data. Data is encoded by converting it with acode, usually one consisting of binary numbers (i.e., bits), in such amanner that reconversion to the original data is possible. Usually,encoding (or coding) is accomplished by adding additional bits to eachgroup of bits that are to be transmitted (each group of bits may bereferred to as a code block, or code). These additional bits aregenerated by using an encoding algorithm. There are many types ofencoding algorithms, for example, memory-based codes (including, amongothers convolutional codes), memory-less codes (4B/5B, 2B/6B, 10B/8B and64B/66B, among others). The present invention may use any type ofencoding algorithm known today, or yet to be developed.

One embodiment of the present invention derives a set of synchronizationcodes directly from an encoding algorithm. In this embodiment, one typeof encoding algorithm is selected and both valid and invalid codes aregenerated. “Valid” codes are groups of binary digits (bits) thatrepresent data, whereas, “invalid” codes are bits that do not representdata (also known as “redundant codes,” explained in detail below). Theinvalid codes are subjected to further processing, and then used assynchronization codes. Because these codes are invalid for data, areceiving device will not confuse them for data, thereby increasing theQOS of the communication. In addition, the codes may be used forcommunication channelization between devices in an environment wherethere are numerous devices communicating. Additionally, these codes maybe used to “whiten” the spectrum created by the use of fixedsynchronization codes. Thus a communication system utilizing thenumerical codes of the present invention has the advantage of supportingan increased number of devices and additionally “whitening” thespectrum.

As discussed above, the present invention may be employed byconventional carrier wave communication systems, as well as byultra-wideband (UWB) communication systems. The features of the presentinvention may be particularly useful in UWB communications. This isbecause UWB communications employs discrete pulses of electromagneticenergy to transmit data. Each of these discrete pulses may have aduration of nanoseconds or picoseconds. A receiver must synchronizeitself by using the received pulses, which is much more difficult thansynchronizing to a continuous carrier wave (as is the case inconventional carrier wave communications). Therefore, by using themethods of the present invention, the receiver will be able to moreeasily distinguish between data bits and synchronization bits.

Referring to FIGS. 1 and 2, ultra-wideband (UWB) communication employsdiscrete pulses of electromagnetic energy that are emitted at, forexample, nanosecond or picosecond intervals (generally tens ofpicoseconds to hundreds of nanoseconds in duration). For this reason,ultra-wideband is often called “impulse radio.” That is, the UWB pulsesmay be transmitted without modulation onto a sine wave, or a sinusoidalcarrier, in contrast with conventional carrier wave communicationtechnology. UWB generally requires neither an assigned frequency nor ahigh-power amplifier.

Alternate embodiments of UWB may be achieved by mixing baseband pulses(i.e., information-carrying pulses), with a carrier wave that controls acenter frequency of a resulting signal. The resulting signal is thentransmitted using discrete pulses of electromagnetic energy, as opposedto transmitting a substantially continuous sinusoidal signal.

An example of a conventional carrier wave communication technology isillustrated in FIG. 1. IEEE 802.11a is a wireless local area network(LAN) protocol, which transmits a sinusoidal radio frequency signal at a5 GHz center frequency, with a radio frequency spread of about 5 MHz. Asdefined herein, a carrier wave is an electromagnetic wave of a specifiedfrequency and amplitude that is emitted by a radio transmitter in orderto carry information. The 802.11 protocol is an example of a carrierwave communication technology. The carrier wave comprises asubstantially continuous sinusoidal waveform having a specific narrowradio frequency (5 MHz) that has a duration that may range from secondsto minutes.

In contrast, an ultra-wideband (UWB) pulse may have a 2.0 GHz centerfrequency, with a frequency spread of approximately 4 GHz, as shown inFIG. 2, which illustrates two typical UWB pulses. FIG. 2 illustratesthat the shorter the UWB pulse in time, the broader the spread of itsfrequency spectrum. This is because bandwidth is inversely proportionalto the time duration of the pulse. A 600-picosecond UWB pulse can haveabout a 1.8 GHz center frequency, with a frequency spread ofapproximately 1.6 GHz and a 300-picosecond UWB pulse can have about a 3GHz center frequency, with a frequency spread of approximately 3.2 GHz.Thus, UWB pulses generally do not operate within a specific frequency,as shown in FIG. 1. Either of the pulses shown in FIG. 2 may befrequency shifted, for example, by using heterodyning, to haveessentially the same bandwidth but centered at any desired frequency.And because UWB pulses are spread across an extremely wide frequencyrange, UWB communication systems allow communications at very high datarates, such as 100 megabits per second or greater.

Also, because the UWB pulses are spread across an extremely widefrequency range, the power sampled in, for example, a one megahertzbandwidth, is very low. For example, UWB pulses of one nano-secondduration and one milliwatt average power (0 dBm) spreads the power overthe entire one gigahertz frequency band occupied by the pulse. Theresulting power density is thus 1 milliwatt divided by the 1,000 MHzpulse bandwidth, or 0.001 milliwatt per megahertz (−30 dBm/MHz).

Generally, in the case of wireless communications, a multiplicity of UWBpulses may be transmitted at relatively low power density (milliwattsper megahertz). However, an alternative UWB communication system maytransmit at a higher power density. For example, UWB pulses may betransmitted between 30 dBm to −50 dBm.

UWB pulses, however, transmitted through many wire media will notinterfere with wireless radio frequency transmissions. Therefore, thepower (sampled at a single frequency) of UWB pulses transmitted thoughwire media may range from about +30 dBm to about −140 dBm.

The present invention may be employed in any type of network, be itwireless, wire, or a mix of wire media and wireless components. That is,a network may use both wire media, such as coaxial cable, and wirelessdevices, such as satellites, or cellular antennas. As defined herein, anetwork is a group of points or nodes connected by communication paths.The communication paths may use wires or they may be wireless. A networkas defined herein can interconnect with other networks and containsub-networks. A network as defined herein can be characterized in termsof a spatial distance, for example, such as a local area network (LAN),a personal area network (PAN), a metropolitan area network (MAN), a widearea network (WAN), and a wireless personal area network (WPAN), amongothers. A network as defined herein can also be characterized by thetype of data transmission technology used by the network, such as, forexample, a Transmission Control Protocol/Internet Protocol (TCP/IP)network, a Systems Network Architecture network, among others. A networkas defined herein can also be characterized by whether it carries voice,data, or both kinds of signals. A network as defined herein may also becharacterized by users of the network, such as, for example, users of apublic switched telephone network (PSTN) or other type of publicnetwork, and private networks (such as within a single room or home),among others. A network as defined herein can also be characterized bythe usual nature of its connections, for example, a dial-up network, aswitched network, a dedicated network, and a non-switched network, amongothers. A network as defined herein can also be characterized by thetypes of physical links that it employs, for example, optical fiber,coaxial cable, a mix of both, unshielded twisted pair, and shieldedtwisted pair, among others.

The present invention may be employed in any type of wireless network,such as a wireless PAN, LAN, MAN, or WAN. In addition, the presentinvention may be employed in wire media, such as coaxial cable, fiberoptic cable, twisted-pair media, and any other types of wire media.

As discussed above, the present invention generates and employs uniquesynchronization codes that improve QOS and can also support a multi-usercommunication environment by being employed as channelization codes(i.e., codes that allow specific groups of users to communicate, withoutinterfering with non-intended groups of users ).

As also discussed above, synchronization sequences, or codes, comprisedof groups of bits, need to be recognizable by the receiver as such, andnot be confused with data. In addition, some communications channels maybe of poor quality and unable to support the Quality of Service (QOS)requirements of some data types. To address these, and other issues, anumber of encoding algorithms (as discussed above) may be used toimprove the QOS, and provide robust synchronization codes.

One type of encoding algorithm that may be employed by the presentinvention are known as memory-less coding. One such algorithm iscommonly referred to as linear block coding. In block codes, a block ofk data bits is encoded by a codeword of n digits where n>k. For everysequence of k data bits, there is a distinct code word of n digits. Onefeature of block coding is that it directly converts every block of kdata bits into a code word of n digits regardless of what data waspreviously processed. For example, one such block coding algorithm isknown as 4B-5B coding. In 4B-5B coding, every 4 bits is replaced by 5bits. In this example there are 2⁵−24=16 invalid codes, or redundantcodes that do not represent data. Coding efficiency of this algorithm istherefor $\frac{4\quad{bits}}{5\quad{bits}} = {80\quad{\%.}}$

Other coding methods of this type, such as 2B-6B, will result indifferent numbers of invalid codes, but in general, if there are k inputbits encoded into n output bits there will be 2^(n)−2^(k) codes that areinvalid and do not represent data. TABLE 1 Data Bits Encoded Data BitsValid/Invalid 00 000 Valid code 01 001 Valid code 10 010 Valid code 11100 Valid code 011 Invalid code 101 Invalid code 110 Invalid code 111Invalid code

For example, TABLE 1 illustrates a hypothetical coding algorithm thatencodes four data bits (2²), using a 2³ encoder. In this example,2³−2²=4 groups of numbers (011, 101, 110 and 111) are invalid, orredundant codes that do not represent data.

Another type of encoding algorithm that may be employed by the presentinvention is memory-based, such as convolutional encoding, which in someversions uses a byte format (1 byte=8 bits, where a bit is either a 1 ora 0). Convolutional encoding is a memory-dependent encoding algorithm.That is, the present state of the encoder is dependent on data that haspreviously been processed. Additionally, the output of the encoderdepends on the present state of the encoder and the data input to theencoder. Systems that use convolutional encoding may also employ aViterbi decoder in the receiver to decode the data, and to detect andcorrect errors. In this case, each set of 8 bits (one byte) whenconvolutionally encoded by a ½ rate encoder becomes a set of 16 bits(one word). Since there are 256 possible combinations of 8 bits (2⁸=256)and 65,536 combinations of 16 bits (2¹⁶=65,536), there are a total of65,536−256=65,280 combinations that if transmitted or received would notrepresent a valid data byte without considering the state of theencoder. For a 3 state encoder the number of valid data bytecombinations is increased by a factor of 2³. In this encoder there wouldbe 2¹⁶−2⁸*2³=63,348 invalid codes. In general, if there are k inputbits, a coding rate of 1/l and m states in the encoder, there will be2^(n)−2^(m+k) codes (where n=k*l) that are invalid codes. It will beappreciated that there are other coding rates, beyond ½ rate coding,that may be used by the present invention.

These invalid numerical codes, which may be produced by any type ofencoding algorithm, provide candidates for synchronization sequences, orcodes, since they should never represent valid data. Once the receiverdetects the presence of one of these codes it can then reset its timingreference, and the receiver and transmitter will be synchronized.

However, some invalid codes may be better than other invalid codes forsynchronization sequences. There are several characteristics of aninvalid code that make it better than others.

One characteristic of importance is how similar a valid data code is tothe invalid code. This can be calculated by the number of bits that aredissimilar between the invalid code and all the valid data codes. Thischaracteristic is generally referred to as a “Hamming distance.” Putsimply, the Hamming distance counts number of bits that disagree betweentwo bit sequences. In TABLE 1 above, the Hamming distance between validcode 000 and invalid code 111 would be 3, as none of the three bits ineach code are the same. A high Hamming distance indicates a lowprobability of corruption of the decoded data.

Another characteristic that makes an invalid code better than others forsynchronization codes is the shape of the autocorrelation function ofthe code. Autocorrelation is a measure of the similarity between delayedand undelayed versions of the same signal, or code. Mathematically,autocorrelation is defined as follows:${\Re_{g}(t)} = {\lim\limits_{Tarrow\infty}{\frac{1}{T}{\int_{{- T}/2}^{T/2}{{g(t)}{g( {t - \tau} )}{\mathbb{d}t}}}}}$

The formula describes a process in which the code g(t) is multiplied bya time shifted copy of the code g(t−τ). The product of these two copiesof the code will integrate to a lower value when the time shift is suchthat there is little bit-by-bit correspondence between the two copies.As the time shift goes to zero, the two functions approach a perfect bitcorrespondence condition and the integral becomes a maximum value. Asthe shifted copy passes the original copy there is again littlecorrespondence between codes and the product decreases. Since thereceiver is looking for a specific code to synchronize, a code with agood autocorrelation will have low values when shifted and an extremelyhigh value when perfectly overlapped. This high value allows thereceiver to determine the timing reference of the transmitter with ahigh degree of precision.

Yet another characteristic that makes some invalid codes better thanothers, is that in some cases synchronization codes that have a balancednumber of ones and zeros are desirable. For example, a receiverdemodulating data using OOK (on-off keying, a data modulation method)may encounter difficulties with codes that have a predominance of 0's.This is because in OOK modulation, the data bit “0” is represented bythe absence of a pulse (i.e., the absence of energy). In this case, abetter synchronization code for this type of modulation may have abalanced number of 1's and 0's.

Referring now to FIGS. 3A-D, which illustrate convolutional encodersthat may be employed by the present invention. Convolutional encoders10, 20, 30, and 40 comprise a multiplicity of synchronous delay elements50 and “exclusive or” functions 60. The number of synchronous delayelements 50 is commonly referred to as the constraint level. At areceiver a Viterbi decoder with a matching constraint level may be usedto detect and correct errors. As shown in FIGS. 3A-C, convolutionalencoders 10, 20, and 30 depict ½ rate encoding, because for every databit that is input, two data bits a₀ and a₁ are produced. FIG. 3C alsoshows that the encoder could be expanded by including “M” and “N”busses, that may expand the number of synchronous delay elements 50 and“exclusive or” functions 60. It will be appreciated that otherconstructions of convolutional encoders may be employed by the presentinvention.

Illustrated in FIG. 3D, convolutional encoder 40 depicts a ¼ rateencoder. In encoder 40, 4 data bits a₀ through a₃ are produced for everyinput data bit. Using a ¼ rate encoder 40 allows for a larger set ofinvalid codes as compared to the ½ encoder, but suffers fromsignificantly increased communication overhead.

Referring now to FIG. 4, frames 100 may include a preamble andsynchronization portion 70, a data payload section 80, and an errordetection section 90. A “frame” 100 as defined herein, includes manydifferent constructions and arrangements. Generally, a “frame” 100 is asequence of bits delimited by, and including, beginning and ending flagsequences. Flag sequences generally comprise a sequence of bits used tomark the beginning and/or end of a frame 100. However, if the sequencelength is known, an ending flag sequence is not necessary. As shown inFIG. 4, a flag sequence may be in the preamble and synchronizationsection 70 and/or the error detection section 80. A frame 100 may be ofdifferent lengths, and contain variable amounts of data.

A frame 100 usually consists of a representation of the original data tobe transmitted (generally comprising a specified number of bits),together with other bits that may be used for error detection orcontrol. Additional bits may be used for routing (possibly in the formof an address field), synchronization, overhead information not directlyassociated with the original data, and a frame check sequence (alsoknown as a cyclic redundancy check). The preamble and synchronizationsection 70 may include routing information, such as a source address, adestination address, and other information.

As shown in FIG. 4, if fixed length, or fixed time duration, frames 100are transmitted, it will cause the preamble and synchronization section70 portion of the frame 100 to be repeated at some regular periodicity.If the synchronization sequence within the preamble and synchronizationsection 70 is identical through a series of frames 100, spectral lineswill develop at a frequency corresponding to the inverse of the timeduration of one frame 100. For example, if the time period of a frame100 is 200 microseconds, and the preamble and synchronization portion 70of each frame 100 contains the same synchronization code, the code willbe repeated every 200 microseconds. This repetition of the code willgenerate a spectral line at a frequency of 5 kilohertz$( {{i.e.},\frac{1}{{200e} - 6}} ).$This repetition will additionally create spectral lines at the integerharmonics of 5 kilohertz.

However, if different synchronization sequences are employed, the samepattern will not occur with the 200 microsecond periodicity and thespectral lines will be reduced and the spectrum whitened.

FIGS. 5, 6, and 7 illustrate several different methods for codegeneration consistent with several different embodiments of the presentinvention. As shown in FIG. 5, in step 110 all valid data codes aregenerated by taking all possible combinations of data and performing aconvolutional coding. For example, as illustrated in TABLE 2 below, allcombinations of valid data for a 4-bit data sequence are shown in thecolumn titled “data.” The corresponding valid data codes for a ½ rateconvolutional coding scheme may be as shown in the column titled “½-RateConvolutional Coding Output.”Since the output of ½ rate convolutionalcoding produces an 8-bit word from a 4-bit code, there are 240(2⁸−2⁴=240) 8-bit words that could not represent data. These are theinvalid codes. These 240 8-bit words form a subset of invalid codes thatmay be used for synchronization codes. In step 120 all possible codesare generated. In this example, the set of all possible codes wouldcontain all combinations of unique 8-bit words. In step 130 the validdata codes are eliminated from the set of all possible codes leaving thesubset of invalid codes (240 invalid codes in this example).

As discussed above, the Hamming Distance is a representation of howdifferent two codes are. In step 140 the Hamming Distance is calculatedby comparing each of the subset of invalid codes to each of the validcodes. The Hamming Distance is the number of bits that are different inthe two compared codes. This is an indication of how robust the code isto misinterpretation in the case of bit error. In step 150 a thresholdis applied to each calculation of Hamming Distance. The threshold may bethe maximum Hamming Distance, or it may be less than the maximum HammingDistance. If the code under consideration has a Hamming distance fromeach valid data code that exceeds the threshold, it is added to thesubset of good Hamming Distance codes in step 170. If the HammingDistance between the code and any valid data code is below thethreshold, the code is discarded in step 160. Steps 140, 150 and 160 and170 are repeated as necessary until all of the subset of invalid codesproduced by step 130 have been evaluated. TABLE 2 Data ½-RateConvolutional Coding Output 0000 00000000 0001 00010000 0010 001000010011 00110001 0100 01010011 0101 01000011 0110 01110010 0111 011000101000 10100110 1001 10110110 1010 10000111 1011 10010111 1100 111101011101 11000111 1110 11010100 1111 11000100

Autocorrelation, as described above, provides an indication of whether atime-shifted version of a code may be misinterpreted as the code itself.In step 180 the autocorrelation is calculated for all of the subset ofgood Hamming Distance codes. A “good” autocorrelation will have a peakvalue that is substantially higher than the highest non-peak value. Bycomparison of the peak value to the highest non-peak value codes with“good” autocorrelations may be selected. In step 190 the ratios of peakto non-peak values of the autocorrelations previously calculated in step180 are compared to a threshold value. The threshold value may be chosenby collecting the largest non-peak value for each pattern, then choosingthe smallest of these. Put differently, the threshold value may belowest value of the greatest non-peak value. However, other thresholdvalues may be chosen. Ideally the highest non-peak value will be lessthan 10% of the peak value. If the peak to highest non-peak threshold isexceeded the code is added to the subset of “good” autocorrelation codesin step 210. If the threshold is not exceeded, the code is discarded instep 200. Steps 180, 190, 200, and 210 are repeated until all of thecodes have been evaluated. Depending upon the threshold value, thesubset of codes that are finally generated may be limited to a very fewcodes. In the event that more codes are desired the selected thresholdvalue may be increased (i.e., the peak to non-peak ratio acceptancevalue may be decreased).

Referring now to FIG. 6, in this embodiment of the invention, anadditional step 220 is added to the steps discussed in FIG. 5. Theadditional step 220 further sorts the subset of codes with goodautocorrelations to a subset where the number of 1's and 0's aresubstantially the same (“balanced codes”). One feature of thisembodiment is that it substantially reduces the problem of a receiverreceiving long strings of 0's or long strings of 1's. This may occur,for example, when receiving data that has been modulated by usingOn-Off-Keying, or other modulation techniques. By using codes that havea balanced number of 1's and 0's, long strings of the same bit areeliminated from the synchronization codes.

Referring now to FIG. 7, in this embodiment of the invention, longercode sequences are derived from the subset of codes having goodautocorrelation. The same method steps shown in FIG. 5 are performed,and then in step 230 a number of codes are selected from the subset, andthe codes are appended onto one another to form a variety of differentcombinations of codes. For example, as shown in TABLE 2, the first twoof the ½-Rate Convolutional Codes could be appended to form a new codecomprising 0000000000010000. Other arrangements of appended codes may beformed, such as appending more than two codes together. Because each ofthe codes has already been autocorrelated, the new appended codes retaintheir advantageous autocorrelation properties. However, in an optionalstep 240, the appended codes may be autocorrelated again. And inoptional step 250, the autocorrelated codes may be compared with athreshold, and either added to a final set of synchronization codes instep 270, or discarded in step 260.

One feature of the embodiment illustrated in FIG. 7 is that codescontaining many bits can be easily constructed. Synchronization codescontaining multiple bits can provide robust synchronization, therebyallowing for less frequent synchronization, and enabling larger datapayloads. Conventional methods of deriving synchronization codes havinglarge numbers of bits can be computationally intensive. For example, acode comprising 32 bits would require the generation of all possiblecombinations, which is 2³²=4,294,967,296 individual codes. Each of these4.3 billion codes must then be checked against each of the valid datacodes. Thus, this algorithm quickly becomes unworkable.

However in the embodiment illustrated in FIG. 7, a 32 bit code may beconstructed by appending the codes together. For example, with referenceto TABLE 2, the first four of the ½-Rate Convolutional Codes could beappended to form a new code that would comprise 32 bits. Because each ofthe codes has already been autocorrelated, the new appended codes retaintheir advantageous autocorrelation properties. In this fashion, long bitcodes can be constructed without performing intensive computations.

As shown in FIGS. 5, 6, and 7, the Hamming Distance is calculated, andthen the autocorrelation is calculated. It will be appreciated that thisorder may be reversed, with the autocorrelation calculation first,followed by the Hamming Distance calculation. The calculations and/orderivations as discussed herein may be performed by a general purposedigital computer, as well as by other computing devices.

Synchronization codes that have been generated using the methodsillustrated in FIGS. 5, 6 or 7 have several features. As mentionedabove, they may be used to “whiten” the radio frequency spectrum thatotherwise contains spectral lines created by periodically transmitting afixed synchronization sequence. In this embodiment, a transmitter andreceiver may “hop” among different synchronization codes, rather thanrepeating the same codes. Externally, this hopping sequence (which maybe a pseudo-random hopping sequence) appears random, and will reduce theformation of spectral lines that may be created by repetitivelytransmitting a fixed sequence at the beginning of frame 100. Inaddition, hopping can provide a secure communication channel.

Referring to FIG. 8, two pico-nets 240 and 250 are illustrated. Onefeature of the present invention is that the synchronization codes maybe used to provide channelization between ultra-wideband devicescommunicating in a common geographical area. In this embodiment, onepico-net may use one set of synchronization codes and another closelylocated pico-net may use a different set of codes. To an ultra-widebanddevice within the first pico-net, the transmissions of an ultra-widebanddevice within the second pico-net will not be received since the firstdevice is synchronized to a different code sequence. This allowsmultiple users to operate without interfering with each other within ageographical area, which can increase the total number of supportedusers.

Generally, a piconet is a group of two or more devices operating with acommon media access controller (MAC), which are associated in somemanner. For example, several ultra-wideband (UWB) communication devices,all with the same, or similar MACs may be located in a commongeographical area. Two different groups may be communicating amongthemselves using these UWB devices. To avoid having one group's signalsinterfere with the second group's signals, different synchronizationcodes are used for each group, thus “channelizing” communication amongthe two groups.

As shown in FIG. 8, there are two pico-nets 240 and 250. Devicescommunicating within pico-net 240 may comprise devices 240(a), 240(b),and 240(c), and in like manner pico-net 250 may comprise devices 250(a),250(b) and 250(c). In one embodiment of the present invention, a subsetof synchronization codes may be assigned to pico-net 240, for use bydevices 240(a), 240(b), and 240(c). A different subset ofsynchronization codes may be assigned to pico-net 250, for use bydevices 250(a), 250(b), and 250(c). Communication signals received by adevice in pico-net 240, 240(a) for example, that are using a codeassigned to pico-net 250, may be ignored by device 240(a) since device240(a) will not synchronize to a code sequence used in pico-net 250.

Thus, it is seen that a system, method and computer software product forgenerating and employing unique synchronization codes is provided. Oneskilled in the art will appreciate that the present invention can bepracticed by other than the above-described embodiments, which arepresented in this description for purposes of illustration and not oflimitation. The description and examples set forth in this specificationand associated drawings only set forth preferred embodiment(s) of thepresent invention. The specification and drawings are not intended tolimit the exclusionary scope of this patent document. Many designs otherthan the above-described embodiments will fall within the literal and/orlegal scope of the following claims, and the present invention islimited only by the claims that follow. It is noted that variousequivalents for the particular embodiments discussed in this descriptionmay practice the invention as well.

1. An ultra-wideband communication system, comprising: at least twogroups of ultra-wideband communication devices; and a set ofsynchronization codes assigned to each group of communication devices;wherein each assigned set of synchronization codes allows each group ofcommunication devices to communicate with other communication devices inthe same group, without interfering with the other groups ofcommunication devices.
 2. The communication system of claim 1, whereineach assigned set of synchronization codes is transmitted using apseudo-random hopping sequence.
 3. The communication system of claim 1,wherein each communication device is assigned a specific synchronizationcode from the assigned set of synchronization codes.
 4. Thecommunication system of claim 1, wherein each synchronization code isincluded within a frame that comprises a data payload section and anerror detection section.
 5. The communication system of claim 1, whereineach synchronization code is transmitted using a substantiallycontinuous sinusoidal waveform.
 6. The communication system of claim 5,wherein the substantially continuous sinusoidal waveform has a durationthat ranges between about 1 microsecond to about 1 millisecond.
 7. Thecommunication system of claim 5, wherein the substantially continuoussinusoidal waveform has less than a 20% fractional bandwidth.
 8. Thecommunication system of claim 1, wherein each synchronization code istransmitted using an ultra-wideband signal.
 9. The communication systemof claim 8, wherein the ultra-wideband signal has a duration that rangesbetween about 10 picoseconds to about 1 microsecond.
 10. Thecommunication system of claim 8, wherein the ultra-wideband signal has apower that can range between about +30 dBm to about −60 dBm, as measuredat a single frequency.
 11. The communication system of claim 8, whereinthe ultra-wideband signal has greater than a 20% fractional bandwidth.